﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using YasharEl.Infrastructure.ObjectFactory;

namespace YasharEl.Infrastructure.ApplicationModel.Bootstrap.Extensibility
{
    /// <summary>
    /// Interface for all complex bootstrapping extensions
    /// </summary>
    public interface IComplexBootstrappingExtension : IBootstrappingExtension
    {
        /// <summary>
        /// Called when the system is started.
        /// </summary>
        void Start();

        /// <summary>
        /// Called when the system is ready and started.
        /// </summary>
        void Ready();

        /// <summary>
        /// Called wen the system is shutting down.
        /// </summary>
        void Shutdown();

        /// <summary>
        /// Called before system started.
        /// </summary>
        void Configure();
    }
}
